﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL.DataSourceInterface;
using DAL.Entities;
using DAL.DataSourceImplementation.DataSourceDB;

namespace DAL.DataSourceImplementation
{
    public class ComunaDAO : IComunaDAO
    {
        ///Variable para almacenar el nombre de la conexión
        private static string connName;

        /// Constructor que recibe la llave de conexión desde el data access
        /// <param name="_connName">Nombre de la llave de conexion</param>
        public ComunaDAO(string _connName)
        {
            connName = _connName;
        }

        ///Métodos
        public List<Comuna> GetAll()
        {
            List<Comuna> comunaList = new List<Comuna>();

            //Se abre contexto de la BD
            using (PublicaTuPropiedadDB db = new PublicaTuPropiedadDB(connName))
            {
                comunaList = db.Comuna.Where(c => c.BCOM_ESTADO == true).ToList();
            }
            return comunaList;
        }

        public List<Comuna> GetAllByIdComuna(int pk_Comuna)
        {
            List<Comuna> comunaList = new List<Comuna>();

            //Se abre contexto de la BD
            using (PublicaTuPropiedadDB db = new PublicaTuPropiedadDB(connName))
            {
                comunaList = db.Comuna.Where(c => c.BCOM_ESTADO == true && c.ICOM_PK == pk_Comuna).ToList();
            }
            return comunaList;
        }

        public List<Comuna> GetAllByIdCity(int fk_Ciudad)
        {
            List<Comuna> comunaList = new List<Comuna>();

            //Se abre contexto de la BD
            using (PublicaTuPropiedadDB db = new PublicaTuPropiedadDB(connName))
            {
                comunaList = db.Comuna.Where(c => c.BCOM_ESTADO == true && c.ICIU_FK == fk_Ciudad).ToList();
            }
            return comunaList;
        }
    }
}
